1 <!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8">
5 <meta http-equiv=
"Content-Style-Type" content=
"text/css">
7 <meta name=
"Generator" content=
"Cocoa HTML Writer">
8 <meta name=
"CocoaVersion" content=
"824.42">
9 <style type=
"text/css">
10 p
.p1
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #a71e12}
11 p
.p2
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; min-height: 12.0px}
12 p
.p3
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
}
13 p
.p4
{margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco
; min-height: 14.0px}
14 p
.p5
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #606060}
15 p
.p6
{margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco
; color: #0019b7}
16 span
.s1
{color: #0019b7}
17 span
.s2
{color: #606060}
18 span
.s3
{color: #000000}
19 span
.Apple-tab-span
{white-space:pre
}
23 <p class=
"p1">// trolls the help extension help directories and compiles a doc with links
</p>
24 <p class=
"p2"><br></p>
25 <p class=
"p3"><span class=
"s1">var
</span> path, doc, result, headingIndices, headingFont, excluded, addFunc;
</p>
26 <p class=
"p3"><span class=
"s1">var
</span> underlineStarts, underlineRanges, titleString, thirdParty, thirdPartyIndex;
</p>
27 <p class=
"p3"><span class=
"s1">var
</span> extensions, extensionsIndex, extensionFunc, extensionsRoots, extensionsFolders;
</p>
28 <p class=
"p3"><span class=
"s1">var
</span> undoc, undocIndex;
</p>
29 <p class=
"p2"><br></p>
30 <p class=
"p3">path =
<span class=
"s1">PathName
</span>.new(
<span class=
"s2">"Help/"</span>);
</p>
31 <p class=
"p4"><br></p>
32 <p class=
"p3">headingIndices =
<span class=
"s1">List
</span>.new;
</p>
33 <p class=
"p2"><br></p>
34 <p class=
"p5"><span class=
"s3">titleString =
</span>"A Generated List of all Documented Extension Classes"<span class=
"s3">;
</span></p>
35 <p class=
"p5"><span class=
"s3">undoc =
</span>"*Show All Undocumented Classes"<span class=
"s3">;
</span></p>
36 <p class=
"p2"><br></p>
37 <p class=
"p5"><span class=
"s3">result = titleString ++
</span><span class=
"s1">Char
</span><span class=
"s3">.nl ++
</span><span class=
"s1">Char
</span><span class=
"s3">.nl ++
</span>"Below is an automatically generated list of all documented extension classes (i.e. those whose class and help files are in /Library/Application Support/SuperCollider/Extensions or ~/Library/Application Support/SuperCollider/Extensions), sorted by directory.\n\nFor a list of undocumented classes click here:"<span class=
"s3"> +
</span><span class=
"s1">Char
</span><span class=
"s3">.tab;
</span></p>
38 <p class=
"p2"><br></p>
39 <p class=
"p3">undocIndex = result.size;
</p>
40 <p class=
"p2"><br></p>
41 <p class=
"p3">result = result ++ undoc ++
<span class=
"s1">Char
</span>.nl ++
<span class=
"s1">Char
</span>.nl;
</p>
42 <p class=
"p2"><br></p>
43 <p class=
"p1">// put included third party libraries at the end
</p>
44 <p class=
"p5"><span class=
"s3">excluded = [
</span><span class=
"s1">PathName
</span><span class=
"s3">(
</span>"Help/crucial"<span class=
"s3">),
</span><span class=
"s1">PathName
</span><span class=
"s3">(
</span>"Help/JITLib"<span class=
"s3">)];
</span></p>
45 <p class=
"p2"><br></p>
46 <p class=
"p1">// this func trolls the directory and harvests the descriptions
</p>
47 <p class=
"p6"><span class=
"s3">addFunc = {
</span>|folderPathName|
</p>
48 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"s1">var
</span> classFiles, heading, currentFile, currentFileString, temp;
</p>
49 <p class=
"p3"><span class=
"Apple-tab-span"> </span>classFiles =
<span class=
"s2">""</span>;
<span class=
"Apple-tab-span"> </span></p>
50 <p class=
"p2"><span class=
"Apple-tab-span"> </span></p>
51 <p class=
"p3"><span class=
"Apple-tab-span"> </span>folderPathName.files.do({
<span class=
"s1">|item|
</span></p>
52 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"s1">var
</span> nameString, nameIndex, end;
</p>
53 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>nameString = item.fileName.split($.).at(
0);
</p>
54 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>if(nameString.asSymbol.asClass.notNil, {
<span class=
"Apple-converted-space"> </span></p>
55 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFile =
<span class=
"s1">File
</span>(item.fullPath,
<span class=
"s2">"r"</span>);
</p>
56 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = currentFile.readAllString;
</p>
57 <p class=
"p1"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>// fix accent acute (remove it)
</p>
58 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString.findAll(
<span class=
"s2">"\'8"</span>).reverseDo({
<span class=
"s1">|i|
</span></p>
59 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = currentFileString.copyFromStart(i-
2) ++
</p>
60 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString.copyToEnd(i+
2);
</p>
61 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>});
</p>
62 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFile.close;
</p>
63 <p class=
"p1"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>// strip RTF gunk
</p>
64 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = currentFileString.stripRTF;
</p>
65 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>nameIndex = currentFileString.find(nameString);
</p>
66 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>if(nameIndex.notNil, {
</p>
67 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = currentFileString.drop(nameIndex);
</p>
68 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>end = currentFileString.find(
<span class=
"s2">"\n"</span>);
</p>
69 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>if( end.notNil, {
</p>
70 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>end = end -
1;
</p>
71 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = currentFileString.copyFromStart(end);
</p>
72 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>});
</p>
73 <p class=
"p1"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>// remove tab stops
</p>
74 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = currentFileString.reject({
<span class=
"s1">|item|
</span>item == $\t});
</p>
75 <p class=
"p1"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>// remove commas, hyphens, and spaces
</p>
76 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>while({(currentFileString[nameString.size] == $,) ||
<span class=
"Apple-converted-space"> </span></p>
77 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>(currentFileString[nameString.size] == $ ) ||
<span class=
"Apple-converted-space"> </span></p>
78 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>(currentFileString[nameString.size] == $-)},
</p>
79 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>{currentFileString = currentFileString.copyFromStart(nameString.size -
1) ++
</p>
80 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString.copyToEnd(nameString.size +
1);
</p>
81 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>}
</p>
82 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>);
</p>
83 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>if(currentFileString.size
> nameString.size, {
</p>
84 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = currentFileString.insert(nameString.size,
<span class=
"s2">"\t"</span>);
</p>
85 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>});},
<span class=
"Apple-converted-space"> </span></p>
86 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>{
<span class=
"Apple-tab-span"> </span><span class=
"Apple-converted-space"> </span></p>
87 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = nameString;
<span class=
"Apple-converted-space"> </span></p>
88 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>}
</p>
89 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>);
</p>
90 <p class=
"p1"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>// add square brackets
</p>
91 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = currentFileString.insert(nameString.size,
<span class=
"s2">"]"</span>);
</p>
92 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>currentFileString = currentFileString.insert(
0,
<span class=
"s2">"["</span>);
</p>
93 <p class=
"p2"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
94 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>classFiles = classFiles ++
<span class=
"s1">Char
</span>.tab ++ currentFileString ++
<span class=
"s1">Char
</span>.nl;
</p>
95 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>});
</p>
96 <p class=
"p3"><span class=
"Apple-tab-span"> </span>});
</p>
97 <p class=
"p3"><span class=
"Apple-tab-span"> </span>if(classFiles.size
> 0, {
</p>
98 <p class=
"p1"><span class=
"s3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></span>//heading = folderPathName.fileName;
</p>
99 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>heading = folderPathName.fullPath;
</p>
100 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>headingIndices.add([result.size, heading.size]);
</p>
101 <p class=
"p2"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
102 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>result = result ++ heading ++
<span class=
"s1">Char
</span>.nl ++
<span class=
"s1">Char
</span>.nl ++ classFiles ++
<span class=
"s1">Char
</span>.nl;
</p>
103 <p class=
"p3"><span class=
"Apple-tab-span"> </span>});
</p>
104 <p class=
"p3"><span class=
"Apple-tab-span"> </span>folderPathName.foldersWithoutCVS.do({
<span class=
"s1">|folder|
</span><span class=
"Apple-converted-space"> </span></p>
105 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>if(excluded.detect({
<span class=
"s1">|item|
</span> item.fileName == folder.fileName; }).isNil,
<span class=
"Apple-converted-space"> </span></p>
106 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>{addFunc.value(folder);}
</p>
107 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>);
<span class=
"Apple-converted-space"> </span></p>
108 <p class=
"p3"><span class=
"Apple-tab-span"> </span>});
</p>
110 <p class=
"p2"><br></p>
111 <p class=
"p1">//addFunc.value(path);
</p>
112 <p class=
"p2"><br></p>
113 <p class=
"p1">// Check for Extensions Folders and add if they exist
</p>
114 <p class=
"p2"><br></p>
115 <p class=
"p5"><span class=
"s3">extensionsRoots = [
</span><span class=
"s1">PathName
</span><span class=
"s3">(
</span>"/Library/Application Support/SuperCollider/Extensions"<span class=
"s3">),
<span class=
"Apple-converted-space"> </span></span></p>
116 <p class=
"p5"><span class=
"s3"><span class=
"Apple-tab-span"> </span></span><span class=
"s1">PathName
</span><span class=
"s3">(
</span>"~/Library/Application Support/SuperCollider/Extensions"<span class=
"s3">)];
</span></p>
117 <p class=
"p2"><br></p>
118 <p class=
"p3">extensionsRoots.any({
<span class=
"s1">|item|
</span> item.pathMatch.size
> 0 }).if({
</p>
119 <p class=
"p2"><span class=
"Apple-tab-span"> </span></p>
120 <p class=
"p3"><span class=
"Apple-tab-span"> </span>extensionsFolders =
<span class=
"s1">List
</span>.new;
</p>
121 <p class=
"p3"><span class=
"Apple-tab-span"> </span>extensionFunc = {
<span class=
"s1">|path|
</span></p>
122 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>path.folders.do({
<span class=
"s1">|item|
</span><span class=
"Apple-converted-space"> </span></p>
123 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>item.fullPath.containsi(
<span class=
"s2">"help"</span>).if({ extensionsFolders.add(item)},{
<span class=
"Apple-converted-space"> </span></p>
124 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>extensionFunc.value(item);});
</p>
125 <p class=
"p3"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span>});
</p>
126 <p class=
"p3"><span class=
"Apple-tab-span"> </span>};
</p>
127 <p class=
"p2"><span class=
"Apple-tab-span"> </span></p>
128 <p class=
"p3"><span class=
"Apple-tab-span"> </span>extensionsRoots.do({
<span class=
"s1">|item|
</span> extensionFunc.value(item); });
</p>
129 <p class=
"p3"><span class=
"Apple-tab-span"> </span>result = result ++
<span class=
"s2">"\n\n"</span>;
<span class=
"Apple-tab-span"> </span></p>
130 <p class=
"p1">//
<span class=
"Apple-tab-span"> </span>result = result ++
"\n------------------------\n\n";
</p>
131 <p class=
"p1">//
<span class=
"Apple-tab-span"> </span>extensions =
"Extensions:";
</p>
132 <p class=
"p1">//
<span class=
"Apple-tab-span"> </span>extensionsIndex = result.size;
</p>
133 <p class=
"p1">//
<span class=
"Apple-tab-span"> </span>result = result ++ extensions + Char.nl + Char.nl;
</p>
134 <p class=
"p3"><span class=
"Apple-tab-span"> </span>extensionsFolders.do({
<span class=
"s1">|item|
</span> addFunc.value(item);});
</p>
135 <p class=
"p2"><span class=
"Apple-tab-span"> </span><span class=
"Apple-tab-span"> </span></p>
136 <p class=
"p3">});
</p>
137 <p class=
"p2"><br></p>
138 <p class=
"p1">// Third Party Libraries
</p>
139 <p class=
"p1">//result = result ++
"\n------------------------\n\n";
</p>
141 <p class=
"p1">//thirdParty =
"Included Third Party Libraries:";
</p>
142 <p class=
"p1">//thirdPartyIndex = result.size;
</p>
144 <p class=
"p1">//result = result ++ thirdParty + Char.nl + Char.nl;
</p>
146 <p class=
"p1">//excluded.do({|item| addFunc.value(item); result = result ++
"\n------------\n\n";});
</p>
147 <p class=
"p2"><br></p>
148 <p class=
"p1">//doc = Document.new(
"Documented Classes");
</p>
149 <p class=
"p2"><br></p>
150 <p class=
"p1">// this sets basic tab stops and line spacing
</p>
151 <p class=
"p5"><span class=
"s3">doc =
</span><span class=
"s1">Document
</span><span class=
"s3">.open(
</span><span class=
"s1">File
</span><span class=
"s3">.getcwd ++
</span>"/"<span class=
"s3"> ++
</span>"Help/help-scripts/tab-template.rtf"<span class=
"s3">);
</span></p>
152 <p class=
"p2"><br></p>
153 <p class=
"p5"><span class=
"s3">doc.title =
</span>"Documented Extension Classes"<span class=
"s3">;
</span></p>
154 <p class=
"p2"><br></p>
155 <p class=
"p1">// set the fonts
</p>
156 <p class=
"p3">doc.setFont(
<span class=
"s1">Font
</span>(
<span class=
"s2">"Helvetica"</span>,
12));
</p>
157 <p class=
"p3">doc.string = result;
</p>
158 <p class=
"p2"><br></p>
159 <p class=
"p3">doc.setFont(
<span class=
"s1">Font
</span>(
<span class=
"s2">"Helvetica-Bold"</span>,
18),
0, titleString.size);
</p>
160 <p class=
"p2"><br></p>
161 <p class=
"p1">//doc.setFont(Font(
"Helvetica-Bold",
16), thirdPartyIndex, thirdParty.size);
</p>
162 <p class=
"p2"><br></p>
163 <p class=
"p3">extensionsIndex.notNil.if({
</p>
164 <p class=
"p3"><span class=
"Apple-tab-span"> </span>doc.setFont(
<span class=
"s1">Font
</span>(
<span class=
"s2">"Helvetica-Bold"</span>,
16), extensionsIndex, extensions.size);
</p>
165 <p class=
"p3">});
</p>
166 <p class=
"p2"><br></p>
167 <p class=
"p3">headingFont =
<span class=
"s1">Font
</span>(
<span class=
"s2">"Helvetica-Bold"</span>,
14);
</p>
168 <p class=
"p3">headingIndices.do({
<span class=
"s1">|item|
</span> doc.setFont(headingFont, *item)});
</p>
169 <p class=
"p2"><br></p>
170 <p class=
"p1">// find the underlines for help links. Apparently faster than storing them above.
</p>
171 <p class=
"p3">underlineStarts = doc.string.findAll(
<span class=
"s2">"["</span>).reverse +
1;
</p>
172 <p class=
"p3">underlineRanges = doc.string.findAll(
<span class=
"s2">"]"</span>).reverse - underlineStarts;
</p>
173 <p class=
"p2"><br></p>
174 <p class=
"p3">underlineStarts.do({
<span class=
"s1">|item, i|
</span> doc.selectRange(item, underlineRanges[i]); doc.underlineSelection;});
</p>
175 <p class=
"p2"><br></p>
176 <p class=
"p3">doc.selectRange(undocIndex, undoc.size);
<span class=
"Apple-converted-space"> </span></p>
177 <p class=
"p3">doc.underlineSelection;
</p>
178 <p class=
"p2"><br></p>
179 <p class=
"p3">doc.selectRange(
0,
0);
</p>
180 <p class=
"p3">doc.editable_(
<span class=
"s1">false
</span>);
</p>
181 <p class=
"p2"><br></p>
182 <p class=
"p1">// keeps window title as it should be!
</p>
183 <p class=
"p3">doc.mouseDownAction = { {doc.title =
<span class=
"s2">"Documented Classes"</span>;}.defer(
0.00001) };
</p>
184 <p class=
"p2"><br></p>
185 <p class=
"p3">{doc.removeUndo;}.defer(
0.001);
</p>